<?php
/**
 * Builds the tables and creates an administrative account.
 */

session_start();
require_once ('init.php');

$query = "CREATE DATABASE IF NOT EXISTS ".MYSQL_DATABASE;
if( !$sql->query($query) ) {
	echo 'Viga. Ei saanud andmebaasi luua';
	return;
}

mysql_select_db( MYSQL_DATABASE, $sql->connection );

$query = "CREATE TABLE IF NOT EXISTS `kasutajad` (
  `idkasutaja` int(11) NOT NULL AUTO_INCREMENT,
  `matrikkel` varchar(45) NOT NULL,
  `parool` varchar(45) NOT NULL,
  `oppejoud` tinyint(1) NOT NULL DEFAULT '0',
  `ruhm` int(11) NOT NULL,
  `eesnimi` varchar(45) NOT NULL,
  `perenimi` varchar(45) NOT NULL,
  `aktiivne` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`idkasutaja`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud luua tabelit kasutajate jaoks';
	return;
}

$query = "INSERT INTO `kasutajad` (`idkasutaja`, `matrikkel`, `parool`, `oppejoud`, `ruhm`, `eesnimi`, `perenimi`, `aktiivne`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 1, 1, 'Õppe', 'Jõud', 1);";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud luua administratiivkontot';
	return;
}


$query = "CREATE TABLE IF NOT EXISTS `kontrolltoo` (
  `idkontrolltoo` int(11) NOT NULL AUTO_INCREMENT,
  `lubatud_katseid` int(11) NOT NULL DEFAULT '1',
  `kirjeldus` varchar(45) NOT NULL,
  `avatud` tinyint(1) DEFAULT '0',
  `kt_nimi` varchar(45) NOT NULL DEFAULT 'harjutus',
  PRIMARY KEY (`idkontrolltoo`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud luua tabelit t&ouml;&ouml;de jaoks';
	return;
}

$query = "CREATE TABLE IF NOT EXISTS `sooritus` (
  `idsooritus` int(11) NOT NULL AUTO_INCREMENT,
  `kasutaja` int(11) NOT NULL,
  `tulemus` int(11) NOT NULL DEFAULT '0',
  `kontrolltoo` int(11) NOT NULL,
  `algus` timestamp NULL DEFAULT NULL,
  `lopp` timestamp NULL DEFAULT NULL,
  `lopetatud` tinyint(1) NOT NULL,
  `hinnatud` tinyint(1) NOT NULL,
  PRIMARY KEY (`idsooritus`),
  KEY `sooritus_to_kasutaja` (`kasutaja`),
  KEY `sooritus_to_kt` (`kontrolltoo`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud luua tabelit soorituste jaoks';
	return;
}

$query = "CREATE TABLE IF NOT EXISTS `ulesanne` (
  `idulesanne` int(11) NOT NULL AUTO_INCREMENT,
  `tekst` varchar(450) NOT NULL,
  `vastus` varchar(450) NOT NULL,
  `vastus2` varchar(450) DEFAULT NULL,
  `vastus3` varchar(450) DEFAULT NULL,
  `kontrolltoo` int(11) NOT NULL,
  `maks_punkte` int(11) NOT NULL,
  `argumendid` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`idulesanne`),
  KEY `ulesanne_to_kt` (`kontrolltoo`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=42 ;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud luua tabelit &uuml;lesannete jaoks';
	return;
}

$query = "CREATE TABLE IF NOT EXISTS `lahendus` (
  `idlahendus` int(11) NOT NULL AUTO_INCREMENT,
  `sooritus` int(11) NOT NULL,
  `vastus` varchar(450) NOT NULL,
  `ulesanne` int(11) DEFAULT NULL,
  `punktid` int(11) DEFAULT NULL,
  `tagasiside` varchar(450) DEFAULT NULL,
  PRIMARY KEY (`idlahendus`),
  KEY `lehendus_to_sooritus` (`sooritus`),
  KEY `lahendus_to_ulesanne` (`ulesanne`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=39 ;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud luua tabelit lahenduste jaoks';
	return;
}

$query = "ALTER TABLE `lahendus`
  ADD CONSTRAINT `lahendus_ibfk_2` FOREIGN KEY (`ulesanne`) REFERENCES `ulesanne` (`idulesanne`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `lahendus_ibfk_1` FOREIGN KEY (`sooritus`) REFERENCES `sooritus` (`idsooritus`) ON DELETE CASCADE ON UPDATE CASCADE;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud seada välisv&otilde;tmeid tabeli \"lahendus\" jaoks"';
	return;
}
$query = "ALTER TABLE `sooritus`
  ADD CONSTRAINT `sooritus_ibfk_1` FOREIGN KEY (`kasutaja`) REFERENCES `kasutajad` (`idkasutaja`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `sooritus_ibfk_2` FOREIGN KEY (`kontrolltoo`) REFERENCES `kontrolltoo` (`idkontrolltoo`) ON DELETE CASCADE ON UPDATE CASCADE;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud seada välisv&otilde;tmeid tabeli \"sooritus\" jaoks"';
	return;
}
$query = "ALTER TABLE `ulesanne`
  ADD CONSTRAINT `ulesanne_ibfk_1` FOREIGN KEY (`kontrolltoo`) REFERENCES `kontrolltoo` (`idkontrolltoo`) ON DELETE CASCADE ON UPDATE CASCADE;";
if( !$sql->query($query) ) {
	echo 'Viga! Ei saanud seada välisv&otilde;tmeid tabeli \"ulesanne\" jaoks"';
	return;
}


echo 'Andmebaas loodud.';
echo 'Kustuta install.php fail enne kui t&ouml;&ouml;d alustad!';
?>